﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace FRMS.Model
{
    public class JLHistoryRecord
    {
        public string Name { get; set; } = string.Empty;
        public string UUID { get; set; } = string.Empty;
        public string Session { get; set; } = string.Empty;
        public int TimeStamp { get; set; }
        public string Sign { get; set; } = string.Empty;
        public JLHistoryRecordData Data { get; set; }
    }

    public class JLHistoryRecordData
    {
        public int Action { get; set; }
        public string BeginTime { get; set; } = string.Empty;
        public string EndTime { get; set; } = string.Empty;
        public int SearchType { get; set; }
        public string PersonId { get; set; } = string.Empty;
    }

    public class JLHistoryRecordReturn
    {
        public string Name { get; set; } = string.Empty;
        public string Session { get; set; } = string.Empty;
        public JLHistoryRecordReturnData Data { get; set; }
        public int Code { get; set; }
        public string Message { get; set; }
    }

    public class JLHistoryRecordReturnData
    {
        public int Status { get; set; }
        public int Total { get; set; }
    }

    public class JLHistoryRecordLoad
    {
        public string Name { get; set; } = string.Empty;
        public string UUID { get; set; } = string.Empty;
        public string Session { get; set; } = string.Empty;
        public int TimeStamp { get; set; }
        public string DeviceId { get; set; } = string.Empty;
        public JLHistoryRecordLoadData Data { get; set; }
    }
    public class JLHistoryRecordLoadData
    {
        public JLHistoryRecordLoadDeviceInfo DeviceInfo { get; set; }
        public JLHistoryRecordLoadVerifyData VerifyData { get; set; }
        public JLHistoryRecordLoadCaptureInfo CaptureInfo { get; set; }
        public JLHistoryRecordLoadFaceInfo FaceInfo { get; set; }
        public JLHistoryRecordLoadCompareInfo CompareInfo { get; set; }
        public JLHistoryRecordLoadHealthCodeInfo HealthCodeInfo { get; set; }
    }
    public class JLHistoryRecordLoadDeviceInfo
    {
        public string DeviceId { get; set; } = string.Empty;
        public string DeviceUUID { get; set; } = string.Empty;
        public string UUID { get; set; } = string.Empty;
        public string DeviceMac { get; set; } = string.Empty;
        public string DeviceIP { get; set; } = string.Empty;
        public string DeviceAddress { get; set; } = string.Empty;
        public string DeviceDirection { get; set; } = string.Empty;
        public int ChannelNo { get; set; }
    }
    public class JLHistoryRecordLoadVerifyData
    {
        public int VerifyType { get; set; }
        public int VerifyStatus { get; set; }
        public int PasswordVerify { get; set; }
        public int PersonListVerify { get; set; }
        public int IDCardVerify { get; set; }
        public int ICCardVerify { get; set; }
        public int MaskVerify { get; set; }
        public int TemperatureVerify { get; set; }
        public int QrcodeVerify { get; set; }
        public int ModeVerify { get; set; }
    }
    public class JLHistoryRecordLoadCaptureInfo
    {
        public string OutputTime { get; set; }
        public string SendTime { get; set; }
        public string CaptureTime { get; set; }
        public int CaptureCount { get; set; }
        public int RecordId { get; set; }
        public string FacePictureFile { get; set; }
        public string Qrcode { get; set; }
    }
    public class JLHistoryRecordLoadFaceInfo
    {
        public int FaceId { get; set; }
        public int FaceQuality { get; set; }
        public string FacePosition { get; set; }
    }
    public class JLHistoryRecordLoadCompareInfo
    {
        public int AlarmEvent { get; set; }
        public int Liveness { get; set; }
        public string CompareTime { get; set; }
        public int PersonType { get; set; }
        public int VisitsCount { get; set; }
        //public string Similarity { get; set; }
        public JLHistoryRecordLoadPersonInfo PersonInfo { get; set; }
       // public JLHistoryRecordLoadICCardInfo ICCardInfo { get; set; }
    }

    public class JLHistoryRecordLoadPersonInfo
    {
        public string PersonId { get; set; } = string.Empty;
        public string PersonName { get; set; } = string.Empty;
        public int PersonIdentity { get; set; }
        public int IdentityAttribute { get; set; }
        public List<int> TimeTable { get; set; }
        public int Sex { get; set; }
        public string IDCard { get; set; } = string.Empty;
        public string Nation { get; set; } = string.Empty;
        public string Birthday { get; set; } = string.Empty;
        public string Phone { get; set; } = string.Empty;
        public string Address { get; set; } = string.Empty;
        public int LimitTime { get; set; }
        public string StartTime { get; set; } = string.Empty;
        public string EndTime { get; set; } = string.Empty;
        public string Label { get; set; } = string.Empty;
        public string ICCardNo { get; set; } = string.Empty;
        public List<string> ICCardNoList { get; set; }
        public JLPersonExtension PersonExtension { get; set; }
    }

    public class JLHistoryRecordLoadICCardInfo
    {
        public string ICCardNo { get; set; }
    }
    public class JLHistoryRecordLoadHealthCodeInfo
    {
        public int QRCodeInfoType { get; set; }
        public string QRCodeInfo { get; set; }
        public string TripUpdateTime { get; set; }
        public string TripPath { get; set; }
    }

    public class JLHistoryCondition
    {
        public string StartTime { get; set; }
        public string EndTime { get; set; }
        public string UUid { get; set; }
        public string DeviceIp { get; set; }
    }

    public class HistoryCount
    {
        public int HistoryNum { get; set; }//da
        public int LoadState { get; set; }//0下载中，1下载完成
        public int Total { get; set; }
    }
    public class HistoryInfo
    {
        public string Name { get; set; }
        public string UUid { get; set; }
        public string UpdateTime { get; set; }
        public string Type { get; set; }
        public string Result { get; set; }
    }

    public class HistoryInfoDownLoadReturn
    {
        public string Name { get; set; }//接口名称定义
        public int TimeStamp { get; set; }//时间戳
        public string Session { get; set; }//生成规则：UUID _TimeStamp（规则可自定义）
        public int Code { get; set; }//返回操作码
        public string Message { get; set; }//返回操作信息
    }
}
